﻿using ApplicationModels.A02.Identities;
using ApplicationModels.A06.Socializes;
using Commons.Responses;
using EntityModels.E02.Identities;
using EntityModels.E06.Socializes;

namespace IApplicationServices
{
    public interface IFollowService:IBaseApplicationService<int,Follow,FollowAM>
    {
        /// <summary>
        /// 是否关注
        /// </summary>
        /// <param name="appUserId"></param>
        /// <param name="followerId"></param>
        /// <returns></returns>
        Task<bool> IsFollowingAsync(string appUserId, string followerId);
        /// <summary>
        /// 是否互相关注
        /// </summary>
        /// <param name="appUserId"></param>
        /// <param name="followerId"></param>
        /// <returns></returns>
        Task<bool> IsMutuallyFollowingAsync(string appUserId, string followerId);
        /// <summary>
        /// 关注列表
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<DatasResponse<FollowAM>> GetFollowingListAsync(string userId);
        /// <summary>
        /// 粉丝列表
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<DatasResponse<FollowAM>> GetFansListAsync(string userId);
        /// <summary>
        /// 移除关注
        /// </summary>
        /// <param name="appUserId"></param>
        /// <param name="followerId"></param>
        /// <returns></returns>

        Task<MessageResponse> UnFollow(string appUserId, string followerId);
    }
}
